package com.wendy.service;

import com.wendy.model.User;
import com.wendy.web.response.ResponseWrapper;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
 * @author zhuwending
 */
public interface UserService extends BaseService<User> {

    /**
     * 查询用户登录信息
     *
     * @param username 用户名 String类型
     * @param password 密码 String类型
     * @return User对象
     */
    User selectUserForLogin(String username, String password);

    /**
     * 用户注册
     *
     * @param user 用户信息
     * @return 提示信息
     */
    ResponseWrapper register(User user);

    /**
     * 上传头像
     *
     * @param request 获取用户信息
     * @param file    文件
     * @return 结果对象
     */
    ResponseWrapper uploadPortrait(HttpServletRequest request, MultipartFile file);

    /**
     * 压缩图片
     *
     * @param request 获取用户信息
     * @throws Exception 异常
     */
    void compressPicture(HttpServletRequest request) throws Exception;

    /**
     * 登录
     *
     * @param request 包含登录参数
     * @return ResponseWrapper
     */
    ResponseWrapper login(HttpServletRequest request);

    /**
     * 查询用户信息
     *
     * @param username 用户名
     * @return User
     */
    User selectUserByUsername(String username);
}
